﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace Flagwind.ComponentModel
{
	/// <summary>
	/// 表示实现该接口的类型是一个响应命令类。
	/// </summary>
	public interface IResponseInstruction
	{
		#region 属性定义

		/// <summary>
		/// 获取获设置响应状态。
		/// </summary>
		ResponseStatus Status
		{
			get;
			set;
		}

		/// <summary>
		/// 获取或设置响应消息。
		/// </summary>
		string Message
		{
			get;
			set;
		}

		/// <summary>
		/// 获取或设置响应时间。
		/// </summary>
		DateTime DateTime
		{
			get;
			set;
		}

		/// <summary>
		/// 获取响应包含的验证错误信息。
		/// </summary>
		IEnumerable<ValidationResult> ValidationErrors
		{
			get;
		}

		/// <summary>
		/// 获取响应包含的异常信息。
		/// </summary>
		Exception Exception
		{
			get;
			set;
		}

		#endregion
	}
}
